package basic.kotlin

/**
 * 空值安全
 * 安全的kotlin写法
 */
fun getName(): String?{ // ? 表示返回值的String类型允许为null
    return null
}

fun main(args: Array<String>) {
    val str: String? = null  //值允许为空
    println(str?.length)     //值为空直接返回null

    val value: String? = "HelloWorld"
    println(value!!.length)  // 已经明确知道不为空，!! 告诉编译器，我知道是不为空了，你编译吧

    val name: String = getName() ?: return   // ? 表示允许为null 为空直接返回，下边的打印语句不会执行了
    println(name.length)
}